home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / R-Shows / (c)sds.d64 / sprite editor (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  15KB  |  478 lines

  1. 0 REM SPRITE EDITOR                     WHY
  2. 1 REM KEYED IN FROM
  3. 2 REM COMPUTE!'S BOOK OF
  4. 3 REM C-64 GRAPHICS
  5. 4 REM     BY
  6. 5 REM JOHN MOORE
  7. 6 REM DEBUGGED BY
  8. 7 REM CARL GARANT
  9. 10 REM *** CHANGE SCREEN POINTERS ***
  10. 21 PRINT CHR$(8);:LZ$(0)="[207]":LZ$(1)=" 0"
  11. 25 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,237,213,0,255,200,0,19,127,240,0,0,0
  12. 26 DATA 255,0,254,246,241,242,243,244,999
  13. 27 R3=PEEK(53272)
  14. 30 POKE 56578,PEEK(56578) OR 3
  15. 40 POKE 56576,(PEEK(56576)AND 252)OR 0
  16. 50 POKE 53272,(PEEK(53272) AND 240)OR 2
  17. 60 POKE 648,196:FF=0
  18. 70 REM
  19. 71 REM ** SET-UP SPRITE REGISTERS **
  20. 72 FOR R=53287 TO 53294: POKE R,14:NEXT
  21. 73 FOR R=0 TO 7: POKE 51192+R,R:NEXT: POKE 53269,255: POKE 53264,0
  22. 74 FOR R=49152 TO 49663 STEP 6: POKE R,170:POKE R+1,170:POKE R+2,170:NEXT
  23. 75 FOR R=49155 TO 49663 STEP 6: POKE R,85:POKE R+1,85:POKE R+2,85:NEXT
  24. 76 FOR R=0 TO 14 STEP 2: POKE R+53248,25+R*15:POKE R+53249,52:NEXT
  25. 79 REM
  26. 80 REM ** TRANSFER CHARACTER SET **
  27. 90 REM
  28. 100 POKE 56334,PEEK(56334)AND254
  29. 110 POKE 1, PEEK(1)AND 251
  30. 120 FOR R=53348 TO 55296
  31. 130 POKE R-2048, PEEK(R):NEXT
  32. 140 POKE 1, PEEK(1) OR 4
  33. 150 POKE 56334,PEEK(56334) OR 1
  34. 160 REM
  35. 170 REM ** DEFINE CHARACTER GRID **
  36. 171 DIM G(47),ZX(47),T(64),Y(64),C$(16)
  37. 180 REM
  38. 190 CG$="[207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][165][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"
  39. 191 CF$="                        [165][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"
  40. 195 BK$="                        [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"
  41. 196 BE$="                        "
  42. 230 REM ** ENABLE SPRITE DISPLAY **
  43. 240 REM
  44. 250 POKE 53269,255
  45. 340 REM ** DEFINE FUNCTION KEYS **
  46. 350 REM
  47. 351 FOR R= 1TO30: S$=S$+"":NEXT
  48. 360 FOR N= 1 TO 8 STEP 2
  49. 370 K$(N)="[162][162][162][162][162][157][157][157][157][157] F"+STR$(N)+" [157][157][157][157][157][157][157][146][167][162][162][162][162][162][146] [165]"
  50. 380 K$(N+1)="[167][169] F"+STR$(N+1)+" [223][146][165]"
  51. 390 P$(N)="[176][192][192][192][174][157][157][157][157][157][194]F"+STR$(N)+"[146][194][157][157][157][157][157][157][157][146][167] [173][192][192][192][189][146] [165]"+"[157]"
  52. 400 P$(N+1)="[167][206] F"+STR$(N+1)+" [205][146][165]":NEXT
  53. 405 REM
  54. 410 REM ** DEFINE KEY POSITIONS **
  55. 415 REM
  56. 420 FOR R=1 TO 8: K$(R)=""+K$(R):NEXT
  57. 430 FOR R= 1 TO 7 STEP 2: K$(R)=""+SP$+K$(R):SP$=SP$+"":NEXT
  58. 440 SP$="":FOR R=2TO8 STEP 2: K$(R)=""+SP$+K$(R):SP$=SP$+"":NEXT:SP$=""
  59. 450 FOR R=1 TO 8:P$(R)=""+P$(R):NEXT
  60. 460 FOR R=1TO7 STEP2: P$(R)=""+SP$+P$(R):SP$=SP$+"":NEXT
  61. 470 SP$="":FOR R=2TO8 STEP 2: P$(R)=""+SP$+P$(R):SP$=SP$+"":NEXT
  62. 480 REM
  63. 490 REM ** DEFINE MESSAGES **
  64. 500 REM
  65. 510 M$(1)="EDIT.[146][157][157][157][157][157]SAVE.[146][157][157][157][157][157]"
  66. 520 M$(1)=M$(1)+"LOAD.[146][157][157][157][157][157]COPY.[146][157][157][157][157][157]CLEAR[146][157][157][157][157][157]"
  67. 530 M$(1)=M$(1)+"FILL.[146][157][157][157][157][157]WORK.[146][157][157][157][157][157]FNCTN[146]"
  68. 540 M$(2)="REVRS[146][157][157][157][157][157]INVRT[146][157][157][157][157][157]"
  69. 550 M$(2)=M$(2)+"FLIP.[146][157][157][157][157][157]SCL R[146][157][157][157][157][157]SCL L[146][157][157][157][157][157]"
  70. 560 M$(2)=M$(2)+"SCL U[146][157][157][157][157][157]SCL D[146][157][157][157][157][157]FNCTN[146]"
  71. 570 REM
  72. 580 REM ** DEFINE RULER LINES **
  73. 590 REM
  74. 600 L$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][177][157][221][157][145][221][157][145][221][192][192][192][192][192][192][192][192][192]"
  75. 610 L$=L$+"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  76. 900 REM
  77. 910 REM ** DISPLAY EDIT SCREEN **
  78. 920 REM
  79. 930 PRINT"[147]";CD$:PRINTL$:PRINTM$(1)
  80. 932 PRINT"";:FOR R=0TO19:PRINTCG$;:NEXT:PRINT"[207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][165][147]";
  81. 1000 REM
  82. 1010 REM ** DISPLAY FUNCTION KEYS **
  83. 1020 REM
  84. 1030 PRINT"";:FOR R=1TO8: PRINTK$(R);:NEXT: PRINT"";
  85. 1035 PRINTM$(1)
  86. 1040 A(0)=1:A(1)=3:A(2)=5:A(3)=7:A(4)=2:A(5)=4:A(6)=6:A(7)=8
  87. 1050 REM
  88. 1060 REM ** GET KEYBOARD ENTRY **
  89. 1070 REM
  90. 1080 PRINT"ENTER FUNCTION:[146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  91. 1081 REMPRINT"               "
  92. 1082 GETA$:IFA$=""THEN1080
  93. 1084 REM
  94. 1085 REM -- SKIP INVALID KEYS --
  95. 1086 REM
  96. 1087 VA=ASC(A$)
  97. 1088 IF (VA>132 AND VA<141) THEN 1130
  98. 1089 IF (VA<49 OR VA>56) THEN 1080
  99. 1090 GOTO 1205
  100. 1100 REM
  101. 1110 REM -- GET FUNCTION KEYS --
  102. 1120 REM
  103. 1130 PRINTP$(A(ASC(A$)-133))
  104. 1140 FORR=0TO99:NEXT
  105. 1150 PRINTK$(A(ASC(A$)-133));"";
  106. 1160 GOTO 1390
  107. 1180 REM
  108. 1190 REM -- PRINT EDITED SPRITE --
  109. 1200 REM
  110. 1205 POKE SP*2+53248,25+SP*30
  111. 1210 POKE 53264,2^(VA-49):POKE53248+(VA-49)*2,40:SP=VA-49
  112. 1220 GOTO 1265
  113. 1265 PRINT"ENTRY MODE:    [146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  114. 1267 PRINT"SPRITE #[146]";SP+1;"[157]     "
  115. 1268 PRINT"";:FOR R=0TO19:PRINTCG$;:NEXT:PRINT"[207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][165]";
  116. 1270 PRINT"";
  117. 1272 LZ$(0)="[207]":LZ$(1)=" [146]"
  118. 1275 FOR R=0TO62
  119. 1277 IF (R<>0) AND (R/3=INT(R/3)) THEN GOSUB 1310
  120. 1278 RR=PEEK(R+(49152+64*SP))
  121. 1279 PRINTLZ$(ABS((RRAND128)=128));LZ$(ABS((RRAND64)=64));LZ$(ABS((RRAND32)=32));
  122. 1280 PRINTLZ$(ABS((RRAND16)=16));LZ$(ABS((RRAND8)=8));LZ$(ABS((RRAND4)=4));
  123. 1281 PRINTLZ$(ABS((RRAND2)=2));LZ$(ABS((RRAND1)=1));
  124. 1283 NEXT: GOTO 1080
  125. 1310 PRINT"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";:RETURN
  126. 1360 REM
  127. 1370 REM -- SPECIAL FUNCTION ROUTINES --
  128. 1380 REM
  129. 1390 IF FF=1 THEN 1500
  130. 1400 ON A(ASC(A$)-133) GOTO 2005,1432,1442,1452,1461,1471,2700,1493
  131. 1410 GOTO 1170
  132. 1430 REM
  133. 1431 REM -- SAVE SPRITES --
  134. 1432 POKE SP*2+53248,25+SP*30:POKE 53264,0
  135. 1433 PRINT"SAVE ON DISK OR[146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  136. 1434 PRINT"CASSETTE? (C/D)[146]"
  137. 1435 GETA$:IFA$=""THEN1435
  138. 1436 IF A$<>"C" AND A$<>"D" THEN 1087
  139. 1437 Q$=A$:GOTO 1760
  140. 1440 REM
  141. 1441 REM -- LOAD SPRITES --
  142. 1442 POKE SP*2+53248,25+SP*30:POKE 53264,0
  143. 1443 PRINT"LOAD ON DISK OR[146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  144. 1444 PRINT"CASSETTE? (C/D)[146]"
  145. 1445 GET A$:IFA$=""THEN1445
  146. 1446 IF A$<>"C" AND A$<>"D" THEN 1087
  147. 1447 Q$=A$:GOTO 1910
  148. 1450 REM
  149. 1451 REM -- (null) A SPRITE --
  150. 1452 PRINT"SPRITE TO COPY?[146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  151. 1453 PRINT"ENTER (1-8)    [146]"
  152. 1454 GET CA$:IF CA$="" THEN 1454
  153. 1455 GOTO 1605
  154. 1456 IF CA$="" THEN 1454
  155. 1459 GOTO 1275
  156. 1460 REM --- CLEAR A SPRITE ---
  157. 1461 PRINT"CLEARING       [146][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  158. 1462 PRINT"SPRITE #       [146][157][157][157][157][157][157][157]";SP+1
  159. 1463 H=49152+64*SP
  160. 1464 FOR R=H TO H+63:POKE R,0:NEXT
  161. 1465 PRINT"";:FOR R=0TO19:PRINTCG$;:NEXT:PRINT"[207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][207][165]";
  162. 1467 GOTO 1080
  163. 1470 REM -- FILL A SPRITE --
  164. 1471 PRINT"FILLING       [146][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  165. 1472 PRINT"SPRITE #       [146][157][157][157][157][157][157][157]";SP+1
  166. 1473 H=49152+64*SP
  167. 1474 FOR R=H TO H+63: POKE R,255: NEXT
  168. 1475 PRINT"";:FOR R=0TO19:PRINTCF$;:NEXT:PRINT"                        [146][165]
  169. 1477 [137] 1080
  170. 1490 [143]
  171. 1491 [143] -- SWITCH FUNCTION SET --
  172. 1492 [143]
  173. 1493 FF[178]1:[153]M$(2);"";:[137] 1080
  174. 1499 [142]
  175. 1500 [145] A([198](A$)[171]133) [137] 1522,1531,1541,1551,1561,1572,1582,1593
  176. 1510 [137] 1170
  177. 1520 [143]
  178. 1521 [143] -- REVERSE SPRITE BITS --
  179. 1522 [153]"REVERSING:     WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  180. 1523 [153]"SPRITE #       WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
  181. 1524 H[178]49152[170]64[172]SP
  182. 1525 [129] R[178]H [164] H[170]63:[151] R,255[171][194](R):[130]
  183. 1529 [137] 1270
  184. 1530 [143] -- INVERT SPRITE BITS --
  185. 1531 [153]"INVERTING:     WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  186. 1532 [153]"SPRITE #       WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
  187. 1533 H[178]49152[170]64[172]SP
  188. 1534 [129] R[178]H [164] H[170]62:T(R[171]H)[178][194](R):[130]
  189. 1535 [129] R[178]H [164] H[170]60 [169] 3
  190. 1536 [151] R,T(60[171](R[171]H))
  191. 1537 [151] R[170]1,T(61[171](R[171]H))
  192. 1538 [151] R[170]2,T(62[171](R[171]H)):[130]:[137] 1270
  193. 1540 [143] -- FLIP SPRITE BITS --
  194. 1541 [153]"FLIPPING:      WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  195. 1542 [153]"SPRITE #       WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
  196. 1543 H[178]49152[170]64[172]SP
  197. 1544 [129] R[178]H[164]H[170]62: T(R[171]H)[178][194](R):[130]
  198. 1545 [129] R[178]H [164]H[170]60[169]3:[151] R[170]2,T(R[171]H):[151] R[170]1,T(R[170]1[171]H):[151] R,T(R[170]2[171]H):[130]
  199. 1546 [129] U[178]H [164] H[170]63:Z[178][194](U):R[178]128[172]([182](Z[175]1)[178]1)[170]64[172]([182]((Z[175]2)[178]2))
  200. 1547 R[178]R[170]32[172]([182]((Z[175]4)[178]4))[170]16[172]([182]((Z[175]8)[178]8))[170]8[172]([182]((Z[175]16)[178]16))
  201. 1548 R[178]R[170]4[172]([182]((Z[175]32)[178]32))[170]2[172]([182]((Z[175]64)[178]64))[170]1[172]([182]((Z[175]128)[178]128))
  202. 1549 R[178][182](R):[151]V,R:[130]:[137]1270
  203. 1550 [143] -- SCROLL RIGHT --
  204. 1551 [153]"SCROLLING RIGHTWAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  205. 1552 [153]"SPRITE #       WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
  206. 1553 [129] U[178]49152[170]64[172]SP[164](49152[170]64[172]SP)[170]62 [169] 3
  207. 1554 R[178]([194](U)[173]2):R1[178]([194](U[170]1)[173]2):R2[178]([194](U[170]2)[173]2)
  208. 1555 [139] [194](U)[173]2[179][177][181]([194](U)[173]2) [167] R1[178]R1[170]128
  209. 1556 [139] [194](U[170]1)[173]2[179][177][181]([194](U[170]1)[173]2) [167] R2[178]R2[170]128
  210. 1557 [139] [194](U[170]2)[173]2[179][177][181]([194](U[170]2)[173]2) [167] R[178]R[170]128
  211. 1558 [151] U,R:[151]U[170]2,R2
  212. 1559 [130]: [137]1270
  213. 1560 [143] --- SCROLL LEFT ---
  214. 1561 [153]"SCROLLING LEFT WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  215. 1562 [153]"SPRITE #       WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
  216. 1563 [129]U[178]49152[170]64[172]SP[164](49152[170]64[172]SP)[170]62[169]3:R[178][194](U)[172]2:R1[178][194](U[170]1)[172]2:R2[178][194](U[170]2)[172]2
  217. 1564 [139] [194](U)[178][177]128 [167] R2[178]R2[170]1
  218. 1565 [139] R2[177]255 [167] R2[178]R2[171]256
  219. 1566 [139] [194](U[170]1)[178][177]128 [167] R[178]R[170]1
  220. 1567 [139] R[177]255 [167] R[178]R[171]256
  221. 1568 [139] [194](U[170]2)[178][177]128 [167] R1[178]R1[170]1
  222. 1569 [139] R1[177]255 [167] R1[178]R1[171]256
  223. 1570 [151] U,R:[151] U[170]1,R1:[151] U[170]2,R2:[130]: [137] 1270
  224. 1571 [143]  --- SCROLL UP ---
  225. 1572 [153]"SCROLLING UP   WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  226. 1573 [153]"SPRPEEKTE #       CMDCMDCMDCMDCMDCMDCMD";SP[170]1
  227. 1574 U[178]49152[170]64[172]SP:Y[178][194](U):Y1[178][194](U[170]1):Y2[178][194](U[170]2)
  228. 1575 [129] R[178]0 [164] 59 [169] 3
  229. 1576 [151] U[170]R,[194](U[170]R[170]3):[151] U[170]R[170]1,[194](U[170]R[170]4):[151] U[170]R[170]2,[194](U[170]R[170]5):[130]
  230. 1577 [151]U[170]60,Y:[151]U[170]61,Y1:[151]U[170]62,Y2
  231. 1578 [137] 1270
  232. 1580 [143]
  233. 1581 [143]  --- SCROLL DOWN ---
  234. 1582 [153]"SCROLLING DOWN WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  235. 1583 [153]"SPRITE #     X WAITCMDCMDCMDCMDCMDCMDCMD";SP[170]1
  236. 1584 U[178]49152[170]64[172]SP:Y[178][194](U[170]60):Y1[178][194](U[170]61):Y2[178][194](U[170]62)
  237. 1585 [151]U[170]62,[194](U[170]62[171]3)
  238. 1586 [129] M[178]59 [164] 2 [169] [171]3
  239. 1587 [151] U[170]M,[194](U[170]M[171]3):[151]U[170]M[170]1,[194](U[170]M[171]2):[151] U[170]M[170]2,[194](U[170]M[171]1):[130]
  240. 1588 [151]U,Y:[151]U[170]1,Y1:[151]U[170]2,Y2
  241. 1589 [137] 1270
  242. 1590 [143]
  243. 1591 [143] -- SWITCH FUNCTION SET --
  244. 1592 [143]
  245. 1593 FF[178]0: [153]M$(1);"";:[137]1080
  246. 1599 [142]
  247. 1600 [143]
  248. 1601 [143] ** [211] SPRITE ROUTINE **
  249. 1602 [143]
  250. 1605 DA[178][198](CA$)
  251. 1610 [139] (DA[177]132 [175] DA[179]141) [167] VA[178]DA:[137] 1130
  252. 1620 [139] (DA[179]49 [176] DA[177]56) [167] 1080
  253. 1690 VJ[178]49152[170]64[172]SP:JJ[178]49152[170]64[172](DA[171]49)
  254. 1700 [129] R[178]0 [164] 63
  255. 1710 [151] VJ[170]R,[194](JJ[170]R):[130]
  256. 1720 [137] 1270
  257. 1730 [143]
  258. 1740 [143] ** SAVE SPRITE ROUTINE **
  259. 1750 [143]
  260. 1760 [153]"SAVE:(NAME)    WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  261. 1765 [153]"------.SPR     CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  262. 1770 LL[178]0:NM$[178]""
  263. 1775 [129] R[178]0 [164] 30: [153]"-WAITCMD";
  264. 1780 [161] A$:[139]A$[178]""[167] [130]
  265. 1790 [139]A$[179][177]""[167] 1840
  266. 1800 [129] R[178]0[164]30:[153]"-CMD";
  267. 1810 [161] A$:[139]A$[178]"" [167] [130]
  268. 1820 [139]A$[179][177]""[167] 1840
  269. 1830 [137] 1775
  270. 1840 [139]A$[178][199](20)[176]A$[178][199](148)[176]A$[178][199](13)[176]A$[178][199](34)[176]A$[178]"ON"[167] 1775
  271. 1845 [139]A$[178]""[176]A$[178]"CMD"[167]1775
  272. 1847 [139] [198](A$)[177]132 [175] [198](A$)[179]141 [167] 1080
  273. 1850 [153]A$;
  274. 1855 NM$[178]NM$[170]A$:LL[178]LL[170]1:[139]LL[178]6[167]1870
  275. 1860 [137] 1775
  276. 1870 NM$[178]NM$[170]".SPR"
  277. 1872 [129] R[178]53248 [164] 53294:ZX(R[171]53248)[178][194](R):[130]
  278. 1874 [151] SP[172]2[170]53248,25[170]SP[172]30:[151] 53264, 0
  279. 1875 [139] Q$[178]"C"[167] 1890
  280. 1880 [140]:[159] 1,8,4,"@:"[170]NM$[170]",W":R[178]0
  281. 1881 [135] F: [139] F[179][177]999 [167] [151] R[170]53248,F:R[178]R[170]1:[137]1881
  282. 1882 [129] R[178]49152 [164] 49663
  283. 1883 [153]"";R[171]49152
  284. 1884 [152]1,[194](R)
  285. 1885 [130]:[129] R[178]53248 [164] 53294:[151] R,ZX(R[171]53248):[130]
  286. 1888 [160]1:[153]"               ";:[137]1080
  287. 1890 [159]1,1,1,NM$:[137] 1881
  288. 1900 [143]
  289. 1901 [143] *** LOAD SPRITES ROUTINE ***
  290. 1902 [143]
  291. 1910 [153]"LOAD:(NAME)    WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  292. 1913 [140]
  293. 1915 [153]"------.SPRWAIT     CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  294. 1920 LL[178]0:NM$[178]""
  295. 1925 [129] R[178]0[164]30:[153]"-WAITCMD";
  296. 1930 [161] A$:[139] A$[178]""[167] [130]
  297. 1935 [139]A$[179][177]""[167] 1960
  298. 1940 [129] R[178]0[164]30:[153]"-CMD";
  299. 1945 [161] A$:[139]A$[178]""[167] [130]
  300. 1950 [139]A$[179][177]""[167] 1960
  301. 1955 [137] 1925
  302. 1960 [139]A$[178][199](20)[176]A$[178][199](148)[176]A$[178][199](13)[176]A$[178][199](34)[176]A$[178]"ON"[167] 1925
  303. 1965 [139]A$[178]""[176]A$[178]""[176]A$[178]"CMD"[167]1925
  304. 1970 [139] [198](A$)[177]132 [175] [198](A$)[179]141 [167] 1080
  305. 1975 [153]A$;
  306. 1980 NM$[178]NM$[170]A$:LL[178]LL[170]1:[139]LL[178]6[167]1990
  307. 1985 [137] 1925
  308. 1990 NM$[178]NM$[170]".SPR"
  309. 1991 [129] R[178]53248 [164] 53294:ZX(R[171]53248)[178][194](R):[130]
  310. 1992 [151] SP[172]2[170]53248,25[170]SP[172]30:[151] 53264, 0
  311. 1993 [139] Q$[178]"C"[167] 2001
  312. 1994 [159] 1,8,4,NM$[170]",R"
  313. 1995 R[178]0:[135] F:[139]F[179][177]999 [167] [151] R[170]53248,F:R[178]R[170]1: [137] 1995
  314. 1996 [129] R[178]49152 [164] 49663
  315. 1997 [153]"";R[171]49152
  316. 1998 [132]1,A:[151] R,A:[130]
  317. 1999 [129] R[178]53248 [164] 53294:[151] R,ZX(R[171]53248):[130]
  318. 2000 [160]1:[153]"              ";:[137] 1080
  319. 2001 [159] 1,1,0,NM$:[137] 1995
  320. 2002 [143]
  321. 2003 [143] *** SPRITE EDIT ROUTINE ***
  322. 2004 [143]
  323. 2005 [153]"EDIT MODE:     WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  324. 2010 [139] [194](53264)[178]0 [167] [153]"WHICH SPRITE?WAIT  CMDCMDCMDCMDCMDCMDCMD";:[137] 1082
  325. 2015 LO[178]50336:SV[178][194](LO) :SM[178](49152[170](SP[172]64)):EX[178]7 :GT[178]SC: BY[178]0
  326. 2020 [129] R[178]0[164]30:[151]LO,SV
  327. 2030 [161] A$:[139]A$[178]""[167] [130]
  328. 2040 [139]A$[179][177]""[167] 2090
  329. 2050 [129] R[178]0[164]30: [151] LO,102
  330. 2060 [161] A$:[139]A$[178]""[167] [130]
  331. 2070 [139]A$[179][177]""[167] 2090
  332. 2080 [137] 2020
  333. 2090 [139]A$[178]"ON"[167] 2200
  334. 2091 [139]A$[178]""[167] 2100
  335. 2092 [139]A$[178]"CMD"[167] 2300
  336. 2093 [139]A$[178]""[167] 2400
  337. 2094 [139]A$[178][199](32) [175] SV[178]160 [167] 2500
  338. 2095 [139]A$[178][199](32) [175] SV[178]79 [167] 2600
  339. 2099 [151] LO,SV:[137] 1087
  340. 2100 [151] LO,102:[129] R[178]0[164]40:[130]
  341. 2110 [139] GT[178][177]SC[170]60 [167] 2020
  342. 2120 [151] LO,SV: LO[178]LO[170]40: GT[178]GT[170]3: SV[178][194] (LO):SM[178]SM[170]3: [137] 2020
  343. 2200 [151] LO,102:[129] R[178]1[164]40:[130]
  344. 2210 [139] GT[178][179]SC[170]2 [167] 2020
  345. 2220 [151] LO,SV: LO[178]LO[171]40: GT[178]GT[171]3: SV[178][194](LO):SM[178]SM[171]3: [137] 2020
  346. 2300 [151] LO,102:[129] R[178]0[164]40:[130]
  347. 2310 [139] EX[178]7 [175] BY[178]0 [167] 2020
  348. 2315 [139]EX[178]7[167][151]LO,SV:LO[178]LO[171]1:EX[178]0:SM[178]SM[171]1:GT[178]GT[171]1:SV[178][194](LO):BY[178]BY[171]1:[137]2020
  349. 2320 [151] LO,SV:LO[178]LO[171]1:EX[178]EX[170]1:SV[178][194](LO):[137] 2020
  350. 2400 [151] LO,102:[129] R[178]0[164]40: [130]
  351. 2410 [139] EX[178]0 [175] BY[178]2 [167] 2020:SV[178][194](LO):[137] 2020:SV[178][194](LO):BY[178]BY[171]1:[137]20
  352. 2415 [139]EX[178]0[167][151]LO,SV:LO[178]LO[170]1:EX[178]7:SM[178]SM[170]1:GT[178]GT[170]1:SV[178][194](LO):BY[178]BY[170]1:[137]2020
  353. 2420 [151] LO,SV:LO[178]LO[170]1:EX[178]EX[171]1:SV[178][194](LO):[137] 2020
  354. 2500 [151] LO,79: [151] SM,[194](SM)[171](2[174]EX):SV[178]79:[137] 2020
  355. 2600 [151] LO, 160:[151] SM,[194](SM)[170](2[174]EX):SV[178]160:[137] 2020
  356. 2700 [143]
  357. 2701 [143] REM *** WORK SPACE ROUTINE ***
  358. 2702 [143]
  359. 2705 [153]"ENABLE SPRITE  WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  360. 2707 [153]"WORK AREA      WAIT"
  361. 2709 [129] R[178]0[164]14 [169] 2:[151] R[170]53248,25[170]R[172]15:[151]R[170]53249,52:[130]:[151]53264,0
  362. 2710 W$(1)[178]"SEL..CMDCMDCMDCMDCMDCOLORWAITCMDCMDCMDCMDCMD"
  363. 2711 C$(0)[178]"STOP":C$(1)[178]"":C$(2)[178]"":C$(3)[178]"OPEN":C$(4)[178]"CLR":C$(5)[178]"":C$(6)[178]""
  364. 2712 C$(7)[178]"SYS":C$(8)[178]"FOR":C$(9)[178]"VERIFY":C$(10)[178]"DEF":C$(11)[178]"LIST":C$(12)[178]"PRINT#":C$(13)[178]"PRINT"
  365. 2713 C$(14)[178]"CONT":C$(15)[178]"POKE"
  366. 2720 W$(1)[178]W$(1)[170]"BCKGDCMDCMDCMDCMDCMDAD/DLCMDCMDCMDCMDCMDMOVE WAITCMDCMDCMDCMDCMD"
  367. 2730 W$(1)[178]W$(1)[170]"2X HZCMDCMDCMDCMDCMD2X VTCMDCMDCMDCMDCMDFNCTNWAIT"
  368. 2740 [153]"";:[129] R[178]0[164]19:[153] BK$;:[130]:[153] BE$;W$(1)
  369. 2745 [143]
  370. 2747 [143] --- GET WORK SPACE COMMANDS --
  371. 2749 [143]
  372. 2750 [153]"ENTER FUNCTION:WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  373. 2751 [153]"               "
  374. 2759 [161] W$:[139] W$[178]""[167]2759
  375. 2760 WA[178][198](W$)
  376. 2770 [139] (WA[177]132 [175] WA[179]141) [167] 3000
  377. 2780 [139] (WA[179]48 [176] WA[177]56) [167] 2750
  378. 2785 WS[178]WA[171]49
  379. 2787 [139] AD[178]1 [167] 2800
  380. 2788 [139] MV[178]1 [167] 3450
  381. 2789 [137] 2750
  382. 2791 [143]
  383. 2792 [143] -- GET SPRITES ROUTINE --
  384. 2793 [143]
  385. 2800 [139] [194](53249[170]WS[172]2)[178][177]85 [167] 2900
  386. 2810 [151] 53248[170]WS[172]2,24:[151] 53249[170]WS[172]2,85:[137] 2759
  387. 2900 [151] 53248[170](WS[172]2),25[170](WS[172]2)[172]15:[151] 53249[170](WS[172]2),52:[137]2759
  388. 2910 [161] W$:[139] W$[178]"" [167] 2910
  389. 2920 WA[178][198](W$)
  390. 2930 [139] (WA[177]132 [175] WA[179]141) [167] 3000
  391. 2940 [139] (WA[179]48 [176] WA[177]57) [167] 2750
  392. 2950 WS[178]WA[171]49
  393. 2960 [139] AD[178]1 [167] 2800
  394. 3000 [145] WA[171]132 [137] 3150,3325,3420,3620,3222,3510,3720,3800
  395. 3100 [143]
  396. 3101 [143] -- SELECT ROUTINE --
  397. 3102 [143]
  398. 3110 [139] I[178]15[167] I[178][171]1
  399. 3120 I[178]I[170]1:[142]
  400. 3150 [153]"SELECT DISABLEDWAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  401. 3160 [153]"USE A/D OR MOVEWAIT"
  402. 3170 [129] R[178]0 [164] 1500: [130]: [137] 2750
  403. 3200 [143]
  404. 3210 [143] -- SPRITE COLOR ROUTINE --
  405. 3220 [143]
  406. 3222 [153]"CHANGE SPRITE  WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  407. 3223 [153]"COLOR (USE SEL)WAIT"
  408. 3230 [161] W$: CL$[178]W$:[139] W$[178]""[167] 3230
  409. 3231 WA[178][198](W$)
  410. 3232 [139] (WA[177]133 [175] WA[179]141) [167] 3000
  411. 3233 [139] (WA[177]47 [175] WA[179]57) [167] WS[178]WA[171]49:[137] 3270
  412. 3240 [139]W$[179][177]"INPUT"[167] 2760
  413. 3250 [141] 3110
  414. 3260 [151] 53287[170]WS,I:[137] 3230
  415. 3270 [153]"SELECTED       WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  416. 3275 [153]"SPRITE #       WAITCMDCMDCMDCMDCMDCMDCMD";WS[170]1
  417. 3280 [137] 3230
  418. 3300 [143]
  419. 3310 [143] -- BACKGROUND COLOR ROUTINE --
  420. 3320 [143]
  421. 3325 [153]"USE SEL TO     WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  422. 3326 [153]"CHANGE BACKGRNDWAIT"
  423. 3330 [161] CL$: [139] CL$[178]""[167] 3330
  424. 3340 [139] CL$[179][177]"INPUT"[167] W$[178]CL$:[137] 2760
  425. 3350 [141] 3100
  426. 3360 [153]"";C$(I);
  427. 3370 [153]"";:[129] R[178]0[164]19:[153]"";BK$;:[130]:[153]BE$;"CONTWAIT";:[137] 3330
  428. 3400 [143]
  429. 3410 [143] -- MOVE SPRITES ROUTINE --
  430. 3420 [153]"MOVING         WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  431. 3421 [153]"SPRITE #       WAITCMDCMDCMDCMDCMDCMDCMD";WS[170]1
  432. 3425 [161] W$:[139]W$[178]"" [167] 3425
  433. 3427 WA[178][198](W$)
  434. 3429 [139] W$[178]""[176] W$[178]"ON"[176] W$[178]""[176] W$[178]"CMD" [167] 3435
  435. 3430 [139] (WA[177]133 [175] WA[179]141) [167] 3000
  436. 3432 [139] (WA[177]47 [175] WA[179]57) [167] WS[178]WA[171]49: [137] 3480
  437. 3435 [139] W$[178]""[167] 3460
  438. 3436 [139] W$[178]"ON"[167] 3465
  439. 3437 [139] W$[178]""[167] 3450
  440. 3438 [139] W$[178]"CMD"[167] 3455
  441. 3450 [139] [194] (53248[170]WS[172]2)[178]192 [167] 3425
  442. 3451 [151] 53248[170]WS[172]2,[194](53248[170]WS[172]2)[170]1:[137] 3425
  443. 3455 [139] [194](53248[170]WS[172]2)[178]25 [167] 3425
  444. 3456 [151] 53248[170]WS[172]2,[194](53248[170]WS[172]2)[171]1:[137] 3425
  445. 3460 [139] [194](53249[170]WS[172]2)[178]228 [167] 3425
  446. 3461 [151] 53249[170]WS[172]2,[194](53249[170]WS[172]2)[170]1:[137] 3425
  447. 3465 [139] [194](53249[170]WS[172]2)[178]79 [167] 3425
  448. 3466 [151] 53249[170]WS[172]2,[194](53249[170]WS[172]2)[171]1:[137] 3425
  449. 3480 [153]"MOVING         WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  450. 3481 [153]"SPRITE #       WAITCMDCMDCMDCMDCMDCMDCMD";WS[170]1:[137] 3425
  451. 3500 [143]
  452. 3510 [143] -- ADD/DELETE SPRITES --
  453. 3520 [153]"ADD OR DELETE  WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  454. 3530 [153]"SPRITES        WAIT"
  455. 3540 AD[178]1:MV[178]0:[137] 2759
  456. 3600 [143]
  457. 3610 [143] -- EXPAND SPRITES VERTICAL --
  458. 3620 [143]
  459. 3622 [153]"2X VERTICAL    WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  460. 3623 [153]"EXPANSION      WAIT"
  461. 3660 [139] ([194](53271)[175] (2[174]WS))[178]0 [167] [151] 53271,[194](53271)[170](2[174]WS):[137] 2750
  462. 3661 [151]53271,[194](53271)[171](2[174]WS):[137] 2750
  463. 3700 [143]
  464. 3710 [143] -- EXPAND SPRITES HORIZONTAL --
  465. 3720 [143]
  466. 3722 [153]"2X HORIZONTAL  WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  467. 3723 [153]"EXPANSION      WAIT"
  468. 3760 [139]([194](53277) [175] (2[174]WS))[178]0 [167] [151] 53277,[194](53277)[170](2[174]WS):[137] 2750
  469. 3761 [151] 53277,[194](53277)[171](2[174]WS):[137] 2750
  470. 3800 [143]
  471. 3810 [143] -- RETURN TO MAIN ROUTINE --
  472. 3815 [153]"EXITING SPRITE WAITCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  473. 3817 [153]"WORK AREA      WAIT"
  474. 3820 [153]"";:[129] R[178]0[164]19:[153]CG$;:[130]:[153]"(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)FN";
  475. 3825 [129] R[178]0 [164] 14 [169] 2:[151] R[170]53248,25[170]R[172]15:[151] R[170]53249,52:[130]:[151]53264,0
  476. 3830 [153] M$(1);:[129] R[178]53287 [164] 53294:[151]R,14:[130]:[151]53277,0:[151]53271,0
  477. 3840 [137]1080
  478.